package com.mrd.gtimpframe.service;

import com.mrd.base.Jqgrid;
import com.mrd.framework.config.web.json.Result;
import com.mrd.gtimpframe.base.BaseService;
import com.mrd.gtimpframe.entity.Notice;

import org.springframework.web.multipart.MultipartFile;

import java.util.List;

import javax.servlet.http.HttpServletResponse;

public interface NoticeService extends BaseService<Notice> {

    /**
     * 获取适用角色
     */
    String[][] getAppliedRoles();

    /**
     * 发布公告
     */
    Result noticePublish(String id);

    /**
     * 获取发布中的公告
     */
    List<Notice> getPublishing(String newPublish);

    /**
     * 图片上传
     */
    Result uploadOrReplace(String noticeId, String noticeType, String replacePicture, MultipartFile picture);

    /**
     * 获取公告图片
     *
     * @param temp     非空表示从临时文件夹获取图片
     * @param noticeId 公告id
     * @param fileName 要读取的图片名
     */
    void getPicture(HttpServletResponse response, String temp, String noticeId, String fileName);

    /**
     * 获取公告列表
     */
    void getNoticeList(HttpServletResponse response, Jqgrid jqgrid, String edit);

    /**
     * 展示最新公告
     */
    Result showNewNotice();

    /**
     * 标记用户已看了公告
     */
    Result haveReceivedNotice(String ids);

    /**
     * 打开编辑页面时的预备处理
     */
    Result dealBeforeEdit(String noticeId);

    /**
     * 提交公告
     */
    Result submit(Notice notice);

    /**
     * 删除图片
     *
     * @param noticeId    公告id
     * @param pictureName 图片名
     */
    Result deletePicture(String noticeId, String pictureName);
}